import { getWxJsapiSignature } from '@/api/index';
import wx from 'weixin-js-sdk';
// 掌证宝app回调方法
const ua = window.navigator.userAgent;
const browser = {
  trident: ua.indexOf('Trident') > -1, // IE内核
  presto: ua.indexOf('Presto') > -1, // opera内核
  webKit: ua.indexOf('AppleWebKit') > -1, // 苹果、谷歌内核
  gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1, // 火狐内核
  mobile: !!ua.match(/AppleWebKit.*Mobile/i) || !!ua.match(/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TLC|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HATER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/), // 是否为移动终端
  ios: !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端
  android: ua.indexOf('Android') > -1 || ua.indexOf('Linux') > -1, // android终端或uc浏览器
  iPhone: ua.indexOf('iPhone') > -1 || ua.indexOf('Mac') > -1, // 是否为iphone或者QQ HD浏览器
  iPad: ua.indexOf('iPad') > -1, // 是否iPad终端
  webApp: ua.indexOf('Safari') === -1, // 是否web应用程序，没有头部与底部
  /* eslint-disable */
  'weixin': ua.toLowerCase().match(/MicroMessenger/i) == 'micromessenger', // 微信浏览器
  /* eslint-disable */
  'isApp': ua.indexOf('thinkive') > -1, // 是掌证宝app
  'isUpSdk': ua.indexOf('UPHybridSDK') > -1, // 是掌证宝app

  // 浏览器语言
  'language': (window.navigator.browserLanguage || window.navigator.language).toLowerCase()
}

const native = {
  isZzb: () => {
    return browser.isApp || !!window.KDS_Native
  },
  // 提供全局getShareTitle_Content_Url方法给app调用
  getShareTitle: (obj) => {
    if (window.getShareTitle_Content_Url == null) {
      window.getShareTitle_Content_Url = () => {
        var object = {
          desc1: obj.desc,
          title1: obj.title,
          link1: obj.link,
          imgUrl1: 'http://m.dgzq.com.cn/resources/img/spokesman/wc_share350.png',

          title2: obj.title, // 分享标题
          link2: obj.link,
          imgUrl2: 'http://m.dgzq.com.cn/resources/img/spokesman/wc_share350.png'
        }
        if (window.KDS_Native && window.KDS_Native.getKDS_ShareParam) {
          window.KDS_Native.getKDS_ShareParam(JSON.stringify(object))
        }
        return JSON.stringify(object)
      }
    }
  },
  // 调用原生app分享方法
  call_DZShare: (obj) => {
    if (window.KDS_Native && window.KDS_Native.call_DZShare) {
      var object = {
        desc1: obj.desc,
        title1: obj.title,
        link1: obj.link,
        imgUrl1: 'http://m.dgzq.com.cn/resources/img/spokesman/wc_share350.png',

        title2: obj.title, // 分享标题
        link2: obj.link,
        imgUrl2: 'http://m.dgzq.com.cn/resources/img/spokesman/wc_share350.png'
      }
      window.KDS_Native.call_DZShare(JSON.stringify(object))
    }
  },
  // 调微信分享
  call_Wechat_share: (obj) => {
    var origin = window.location.origin
    var object = JSON.parse(JSON.stringify(obj))
    native.call_Wechat_config(()=>{
      wx.ready(function () {
        wx.onMenuShareAppMessage({
          desc: object.desc,
          title: object.title,
          link: object.link,
          imgUrl: object.imgUrl || origin + '/dz-mall/index/wx.png', // 分享图标 ,
          success: function () {
          }
        })
        wx.onMenuShareTimeline({
          desc: object.desc,
          title: object.title, // 分享标题
          link: object.link,
          imgUrl: object.imgUrl || origin + '/dz-mall/index/wx.png', // 分享图标 ,
          success: function () {
          }
        })
      })
    })
  },
  // 禁止微信分享
  call_Wechat_noshare: () => {
    native.call_Wechat_config(()=>{
      wx.ready(function () {
        wx.hideOptionMenu()
        wx.hideMenuItems({
          menuList: ['menuItem:share:timeline', 'menuItem:copyUrl', 'menuItem:share:appMessage', 'menuItem:share:qq', 'menuItme:share:QZone']
        })
      })
    })
  },
  // 调微信验证
  call_Wechat_config: (callback) => {
    var url = window.location.href
    getWxJsapiSignature(url).then(res => {
      var data = res.dataSet[0]
      // 微信分享
      wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: data.appId, // 必填，公众号的唯一标识
        timestamp: data.timestamp, // 必填，生成签名的时间戳
        nonceStr: data.nonceStr, // 必填，生成签名的随机串
        signature: data.signature, // 必填，签名，见附录1
        jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
      })
      callback && callback()
    })
  },
  // 跳转微信,安卓手机浏览器可打开微信，safari打不开；
  // 掌证宝需要原生配合打开微信；
  openWeixinApp: (el) => {
    var ua = window.navigator.userAgent
    if (ua.match(/android/i) || ua.match(/(iphone|ipod|ipad);?/i)) {
      var ifr = document.createElement('iframe')
      ifr.src = 'weixin://'
      ifr.style.display = 'none'
      ifr.onload = () => {
        el.click()
      }
      ifr.onerror = () => {
        alert('您尚未安装微信，请先安装！')
      }
      document.body.appendChild(ifr)
      setTimeout(() => {
        document.body.removeChild(ifr)
      }, 1000)
    }
  },
  getChannel () {
    // 访问来源，0:PC,1:IOS,2:ANDROID,3:H5,默认传0
    if (browser.isApp) {
      if (browser.android) {
        return 2
      } else if (browser.ios) {
        return 1
      }
    } else {
      if (browser.mobile) {
        return 3
      }
    }
    return 0
  },
  phoneType () {
    // 获取手机类型
    if (browser.isApp) {
      if (browser.android) {
        return 'android'
      } else if (browser.ios) {
        return 'iOS'
      }
    } else {
      if (browser.mobile) {
        return 'mobile'
      }
    }
    return 'pc'
  },
  closeWebView () {
    // android浏览器处理方法
    if (browser.android && window.KDS_Native && window.KDS_Native.closeCurrentWindow) {
      window.KDS_Native.closeCurrentWindow()
    }

    // ios浏览器处理方法
    if (browser.ios && window.KDS_Native && window.KDS_Native.shutCurrentPage) {
      window.KDS_Native.shutCurrentPage()
    }
  },
  setStatusStyle (cr,bg) {
    var plusReady = () => {
      // 设置系统状态栏背景为红色
      var type = window.plus.os.name;
      if(type == "iOS") {
        window.plus.navigator.setStatusBarBackground("#368CBD");
      } else {
        window.plus.navigator.setStatusBarBackground("#ddd");
      }
    }
    if(window.plus) {
      plusReady();
    } else {
      document.addEventListener("plusready", plusReady, false);
    } 
  },
  // 获取中台配置的产品的跳转地址
  getRedirectUrl(data) {
    let { redirectUrl } = data;
      if (browser.ios && data.redirectUriIos) {
        redirectUrl = data.redirectUriIos;
      }
      return redirectUrl;
  }
}

export default {
  browser,
  native,
  wx
}
